Consulta de Guías Docentes



Academic Year/course: 2022/23

30212 - Concurrent and Distributed Systems Programming


Syllabus Information

Academic Year:
2022/23
Subject:
30212 - Concurrent and Distributed Systems Programming
Faculty / School:
110 - Escuela de Ingeniería y Arquitectura
326 - Escuela Universitaria Politécnica de Teruel
Degree:
439 - Bachelor's Degree in Informatics Engineering
443 - Bachelor's Degree in Informatics Engineering
ECTS:
6.0
Year:
2
Semester:
First semester
Subject Type:
Compulsory
Module:
---

1. General information

2. Learning goals

3. Assessment (1st and 2nd call)

4. Methodology, learning tasks, syllabus and resources

4.1. Methodological overview

The methodology followed in this course is oriented towards the achievement of the learning objectives. A wide range of teaching and learning tasks will be carried out, according to the following items:

  • autonomous work since the beginning of the semester.
  • lectures for the presentation of the main concepts and methodologies related to the development of a compiler from a high level programming language. The teacher will make the lectures as interactive as possible so that students should also participate.
  • the use of the presented methodologies in practical problem sessions, where students should also have a participative attitude.
  • the laboratory sessions, where students will learn (and work with) the necessary techniques for the development of compilers.

4.2. Learning tasks

The 6 ECTS course is organized as follows:

At the Escuela de Ingeniería y Arquitectura (Zaragoza):

  • Lectures (45 hours). The teacher explains the course contents and solves representative applied problems. A third part will be devoted to problem sessions where student will work on the solution of some previously stated exercices. Regular attendance is highly recommended.
  • Laboratory sessions (15 hours). Students will work in pairs implementing solutions to some proposed practical cases.
  • Autonomous work (85 hours). Students are expected to spend about 85 hours to study theory, solve problems and prepare laboratory sessions.
  • Evaluation (5 hours). Students will have to pass some examinations related to both theoretical and practical aspects of the subject.

At the Escuela Universitaria Politécnica (Teruel):

  • Lectures (45 hours). Lectures run for 3 weekly hours. The teacher explains the course contents and solves representative applied problems. A third part will be devoted to problem sessions where student will work on the solution of some previously stated exercices. Regular attendance is highly recommended.
  • Laboratory sessions (15 hours). Students will work in pairs implementing solutions to some proposed practical cases.
  • Group work (24 hours). A work to be carried out in groups is included in the program of the subject.
  • Autonomous work (60 hours). Students are expected to spend about 85 hours to study theory, solve problems and prepare laboratory sessions.
  • Evaluation (6 hours). Students will have to pass some examinations related to both theoretical and practical aspects of the subject.

4.3. Syllabus

The course will address the following topics:

  • Introduction to concurrency (4h approx.)

  • Modelling and analysis of concurrent systems (6h approx.)

  • The critical section problem (5h approx.)

  • Semaphores (8h approx.)

  • Monitors (6h approx.)

  • Introduction to distributed systems (3h approx.)

  • Coordination by means of tuple spaces (3h approx.)

  • Distributed algorithms (7h approx.)

  • Introduction to real-time systems (1.5h approx.)

  • Introduction to event-based systems (1.5h approx.)

The laboratory sessions will cover the following topics:

  • Concurrent programming. Threads and shared data. Problems generated by the sharing of data and resources (2h)
  • Solutions to the critical section problem (2h)
  • Synchronization by means of semaphores (3h)
  • Synchronization by means of monitors (3h)
  • Synchronization in distributed systems by message passing (4h)

4.4. Course planning and calendar

The concrete schedule of the proposed activities will be established according to the faculty organization.

 


Curso Académico: 2022/23

30212 - Programación de sistemas concurrentes y distribuidos


Información del Plan Docente

Año académico:
2022/23
Asignatura:
30212 - Programación de sistemas concurrentes y distribuidos
Centro académico:
110 - Escuela de Ingeniería y Arquitectura
326 - Escuela Universitaria Politécnica de Teruel
Titulación:
439 - Graduado en Ingeniería Informática
443 - Graduado en Ingeniería Informática
Créditos:
6.0
Curso:
2
Periodo de impartición:
Primer semestre
Clase de asignatura:
Obligatoria
Materia:
---

1. Información Básica

1.1. Objetivos de la asignatura

La asignatura y sus resultados previstos responden a los siguientes planteamientos y objetivos:

En esta asignatura el alumno aprenderá a enfrentarse al diseño de programas en los que un conjunto de procesos deben sincronizarse, ya sea mediante mecanismos de memoria compartida como a través de redes de comunicaciones, llegando a poder razonar sobre la corrección de la solución propuesta.

Estos planteamientos y objetivos están alineados con los siguientes Objetivos de Desarrollo Sostenible (ODS) de la Agenda 2030 de Naciones Unidas (https://www.un.org/sustainabledevelopment/es/), de tal manera que la adquisición de los resultados de aprendizaje de la asignatura proporciona capacitación y competencia para contribuir en cierta medida a su logro: Objetivo 7: Energía asequible y no contaminante (Meta 7.3  De aquí a 2030, duplicar la tasa mundial de mejora de la eficiencia energética); Objetivo 9: Industria, innovación e infraestructuras (Meta 9.5 Aumentar a investigación científica y mejorar la capacidad tecnológica de los sectores industriales de todos los países, en particular los países en desarrollo, entre tras cosas fomentando la innovación y aumentando considerablemente, de aquí a 2030, el número de personas que trabajan en investigación y desarrollo por millón e habitantes y los gastos de los sectores público y privado en investigación y desarrollo).

1.2. Contexto y sentido de la asignatura en la titulación

Esta asignatura, junto con las de programación del primer año y la asignatura de Teoría de la Computación son la plataforma sobre la que se va a asentar todo el desarrollo de las asignaturas posteriores que trabajen en el desarrollo de sistemas. Actualmente es difícil encontrar una aplicación "software" que no incluya características propias de sistemas concurrentes, distribuidos y de tiempo real.

1.3. Recomendaciones para cursar la asignatura

La asignatura es la continuación natural de las asignaturas de programación presentadas en el primer año de estudios, Programación I y Programación II. Es necesario que el alumno haya adquirido soltura en el desarrollo de programas secuenciales correctos. Es también recomendable que se encuentre cursando las asignaturas de Sistemas Operativos y Teoría de la Computación, ya que comparten algunos temas clave.

2. Competencias y resultados de aprendizaje

2.1. Competencias

Al superar la asignatura, el estudiante será más competente para...

Contribuye a que el estudiante adquiera las siguientes competencias generales comunes a la rama de informática:

  • Conocer y aplicar los procedimientos algorítmicos básicos de las tecnologías informáticas para diseñar soluciones a problemas, analizando la idoneidad y complejidad de los algoritmos propuestos.
  • Conocer y aplicar las características, funcionalidades y estructura de los Sistemas Distribuidos, las Redes de Computadores e Internet y diseñar e implementar aplicaciones basadas en ellas.
  • Conocer y aplicar los principios fundamentales y técnicas básicas de la programación paralela, concurrente, distribuida y de tiempo real.
  • Conocer y aplicar los principios, metodologías y ciclos de vida de la ingeniería de software. 

Adicionalmente, contribuye a adquirir las siguientes competencias generales/transversales:

  • Capacidad para resolver problemas y tomar decisiones con iniciativa, creatividad y razonamiento crítico.
  • Capacidad para usar las técnicas, habilidades y herramientas de la Ingeniería necesarias para la práctica de la misma.
  • Capacidad para aprender de forma continuada y desarrollar estrategias de aprendizaje autónomo.
  • Capacidad para aplicar las tecnologías de la información y las comunicaciones en la Ingeniería.

2.2. Resultados de aprendizaje

El estudiante, para superar esta asignatura, deberá demostrar los siguientes resultados...

El estudiante terminará con un conocimiento profundo de cuáles son las características específicas de los sistemas concurrentes y distribuidos.

Conocerá los problemas generados por el acceso concurrente a datos y recursos, así como las soluciones conceptuales y tecnológicas que se han dado a los mismos.

Conocerá las características de los sistemas distribuidos, los retos que plantea y las soluciones que se han planteado para los mismos.

Tendrá nociones de qué son los sistemas tiempo real, y sistemas basados en eventos.

Conocerá herramientas para el diseño y programación de programas con características concurrentes y/o distribuidas.

2.3. Importancia de los resultados de aprendizaje

En la época en que nos encontramos, todo ingeniero informático debe ser capaz de diseñar sistemas concurrentes y distribuidos. Debe también entender cuáles son las características importantes a considerar en sistemas en que el tiempo real es un requisito. Una base sólida en estos aspectos es imprescindible para poder desenvolverse en el mundo profesional. 

3. Evaluación

3.1. Tipo de pruebas y su valor sobre la nota final y criterios de evaluación para cada prueba

El estudiante deberá demostrar que ha alcanzado los resultados de aprendizaje previstos mediante una prueba global de evaluación compuesta de dos partes:

En la Escuela de Ingeniería y Arquitectura de Zaragoza:

  • Prácticas de laboratorio (30%): Se evaluarán las soluciones propuestas a los ejercicios planteados considerando el diseño, la programación y la corrección de las mismas.
  • Prueba teórico-práctica (70%): En esta prueba se plantearán cuestiones y/o problemas relacionados con el programa impartido en la asignatura. En general, se valorará la calidad y claridad de las respuestas, así como las estrategias de solución planteadas por los alumnos.

La evaluación de la asignatura en la segunda convocatoria constará de dos pruebas:

  • Prueba escrita teórico-práctica (70%), de características similares a la de la primera convocatoria
  • Prácticas de laboratorio (30%), en la que se evaluarán las soluciones propuestas a ejercicios similares a los planteados durante las sesiones prácticas del curso.

En ambas convocatorias, la calificación final de la asignatura se obtendrá como la media ponderada de las dos partes, teniendo en cuenta que es necesario llegar a obtener, al menos, 5.0 puntos sobre 10.0 en cada una de partes.  En caso de no alcanzar ese mínimo en alguna de las partes, la calificación global de la asignatura será la mínima entre 4.0 y el resultado de ponderar con los porcentajes de cada parte.


En la Escuela Universitaria Politécnica de Teruel:

La nota final de la asignatura en la convocatoria ordinaria se divide de la siguiente forma:

  • Trabajo en grupo. 20% de la nota final. Consistirá en proponer un problema de programación concurrente, resolverlo y exponerlo. En el examen final habrá una parte de recuperación de esta actividad.
  • Prácticas. 30% de la nota final. Habrá varias prácticas entregables a lo largo del curso, referidas a distintos temas del mismo. En el examen final habrá una parte de recuperación de esta actividad.
  • Teoría y ejercicios. 50% de la nota final. Evaluable en el examen final, que constará de cuestiones y/o problemas relacionados con el programa impartido en la asignatura.

La calificación final de la asignatura se obtendrá como la media ponderada de las tres partes, teniendo en cuenta que es necesario llegar a obtener, al menos, 4 puntos sobre 10 en las prácticas y 4 puntos sobre 10 en la prueba escrita. En caso de no alcanzar ese mínimo en alguna de esas partes, la calificación global de la asignatura será la mínima entre 4.0 y el resultado de ponderar con los porcentajes de cada parte.

En cuanto a la segunda convocatoria, la nota final será la nota del examen extraordinario, teniendo en cuenta que ese examen tendrá una parte de prácticas que valdrá el 30% de la nota total. Aquellos que hubieran aprobado la parte de prácticas en la convocatoria ordinaria mantendrán la nota y no tendrán que hacer dicha parte de prácticas en el examen extraordinario. En la convocatoria extraordinaria, la nota del trabajo no se mantiene.

4. Metodología, actividades de aprendizaje, programa y recursos

4.1. Presentación metodológica general

El proceso de aprendizaje que se ha diseñado para esta asignatura se basa en lo siguiente:

  • La presentación de los contenidos de la asignatura en clases magistrales por parte de los profesores.
  • La resolución de problemas planteados en clase.
  • El estudio personal de la asignatura por parte de los alumnos.
  • El desarrollo de prácticas por parte de los alumnos, guiadas por los profesores, que desarrollan los conocimientos teóricos.
  • La resolución de problemas sencillos de dificultad creciente propuestos por los profesores.

Se debe tener en cuenta que la asignatura tiene una orientación tanto teórica como práctica. Por ello, el proceso de aprendizaje pone énfasis tanto en la asistencia del alumno a las clases magistrales como en la realización de prácticas en laboratorio, en la resolución de problemas sencillos de dificultad creciente, y en el estudio individualizado. 

4.2. Actividades de aprendizaje

El programa que se ofrece al estudiante para ayudarle a lograr los resultados previstos comprende las siguientes actividades:

Las actividades se organizarán en base a sesiones teórico-prácticas, resolución de problemas (con y sin tutela del profesor), prácticas de laboratorio y actividades de evaluación.

Por tipos de actividad, la dedicación del alumno se organiza en torno a:

En la Escuela de Ingeniería y Arquitectura (Zaragoza):

  • 45 horas de actividades teórico-prácticas, de las que 15 corresponden a sesiones de problemas.
  • 15 horas de sesiones de laboratorio.
  • 85 horas de trabajo y estudio individual efectivo (estudio de textos, resolución de problemas, preparación de clases y prácticas, desarrollo de programas, etc.).
  • 5 horas dedicadas a distintas pruebas de evaluación.

En la Escuela Universitaria Politécnica (Teruel):

  • 45 horas de actividades teórico-prácticas, de las que 15 corresponden a sesiones de problemas.
  • 15 horas de sesiones de laboratorio.
  • 24 horas de trabajo en grupo.
  • 60 horas de trabajo y estudio individual efectivo (estudio de textos, resolución de problemas, preparación de clases y prácticas, desarrollo de programas, etc.).
  • 6 horas dedicadas a distintas pruebas de evaluación.

4.3. Programa

El programa de la asignatura consta de los siguientes temas (entre paréntesis se especifica el número aproximado de horas de trabajo teórico-práctico y en la solución de problemas):

  • Introducción a la programación concurrente (4h aprox.)
  • Modelado y análisis de sistemas concurrentes (6h aprox.)
  • El problema de la sección crítica (5h aprox.)
  • Semáforos (8h aprox.)
  • Monitores (6h aprox.)
  • Introducción a la programación distribuida (3h aprox.)
  • Coordinación basada en espacios de tuplas (3h aprox.)
  • Algoritmos distribuidos (7h aprox.)
  • Introducción a los sistemas de tiempo real (1.5h aprox.)
  • Introducción a los sistemas dirigidos por eventos (1.5h aprox.)

También se realizarán las siguientes prácticas:

  • La programación concurrente. Threads y datos compartidos. Problemas generados por la compartición de datos y recursos (2h)
  • Solución al problema de la sección crítica (2h)
  • Programación con semáforos (3h)
  • Programación con monitores (3h)
  • Programación de sistemas distribuidos (5h)

4.4. Planificación de las actividades de aprendizaje y calendario de fechas clave

El calendario de la asignatura estará definido por el centro en base al calendario académico del curso correspondiente.
El calendario de clases, prácticas y exámenes, así como las fechas de entrega de trabajos de evaluación, se anunciarán con suficiente antelación.